#pragma once

#include "Enemy.h"

#define LINE_OF_SIGHT		60.0f

class MeleeEnemy : public Enemy{
public:
	enum PERSONALITY { BRAVE, CAREFUL, TIMID };
	enum STATE { ATTACK, DEFEND, IDLE, RETREAT, CHECK };
private:
	PERSONALITY perType;
	STATE curState, newState;

	bool attackStart, attackTime, idleTime, defendFinish, retreatTime;

	void Idle(void);
	void CheckForAllies(void);
	void Retreat(void);
	void Attack(void);
	void Defend(void);

	void BraveAI(float elapsed);
	void CarefulAI(float elapsed);
	void TimidAI(float elapsed);
public:
	MeleeEnemy(void);
	~MeleeEnemy(void);

	void DropItemOnDeath(vector<PickUp *> *PickUpList);
	bool UpdateObject(Vector3D offset, float elapsed);
};